#pragma once

#include <QtGui/QMainWindow>

#include "GeneratedFiles/ui/ui_UiEditWindow.h"
#include "UiDefinition.hpp"
#include "DocumentWindow.hpp"
#include "CssHighlighter.hpp"




namespace Engine
{
	namespace Edit
	{
		class UiEditWindow
			: public DocumentWindow
		{
			Q_OBJECT

		public:

			UiEditWindow(UiDefinition::ptr uiDefinition, QWidget* parent);
			virtual ~UiEditWindow();



			/**
			 * @returns the ui definition this widget displays
			 */
			UiDefinition::ptr uiDefinition() const;

			/**
			 * @returns the contents of the text edit
			 */
			QString contents() const;

		public slots:

			virtual void save();
			void onTextChanged();

		private:

			Ui::UiEditWindow      ui;
			UiDefinition::ptr     m_uiDefinition;
			CssHighlighter::ptr   m_highlighter;
		};
		///////////////////////////////////////////////////////////////////////////////////////////
	}
	///////////////////////////////////////////////////////////////////////////////////////////////
}
///////////////////////////////////////////////////////////////////////////////////////////////////
